package com.atguigu.tingshu.account.service;

import com.atguigu.tingshu.model.account.RechargeInfo;
import com.atguigu.tingshu.model.account.UserAccount;
import com.atguigu.tingshu.vo.account.AccountLockVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;

/**
 * 用户账号服务
 *
 * @author ym
 * @date 2025/06/28 15:46
 */
public interface UserAccountService extends IService<UserAccount> {


    /**
     * 保存用户帐户
     *
     * @param l l
     */
    void saveUserAccount(Long l);

    /**
     * 保存用户帐户详细信息
     *
     * @param userId    用户ID
     * @param title     职称
     * @param tradeType 贸易类型
     * @param amount    金额
     * @param orderNo   订单号
     */
    void saveUserAccountDetail(Long userId, String title, String tradeType, BigDecimal amount, String orderNo);

    /**
     * 获得可用金额
     *
     * @param userId 用户ID
     * @return {@link BigDecimal}
     */
    BigDecimal getAvailableAmount(Long userId);

    void checkAndLock(Long userid, AccountLockVo accountLockVo);

    RechargeInfo getRechargeInfo(String orderNo, Long userId);
}
